|
NXビット (No eXecute bit) は、ノイマン型アーキテクチャのコンピュータにおいて特定のメモリ領域(に置かれたデータ)に付与する実行不可属性、またはその属性付与機能を指す。 == 概要 == NXビットは、端的に言えば「データの誤実行」を防ぐために用いられる。そのしくみは、メモリをコード(プロセッサ命令)領域とデータ領域とに分離し、データを配置したメモリ領域にあらかじめ特別な印(属性)を付与することで、この領域のデータを実行しないようにする(実行を試みた際に例外=エラーを発行する)ものである。 典型的には、バッファオーバーラン攻撃(後述)等に代表される、ヒープやスタック領域等に置かれたデータを破壊ないしは書き換えて任意のコードを挿入し実行を誘う攻撃を、オペレーティングシステムとCPUの協調により保護するために用いられる機能である。 その機能自体は、汎用機やワークステーション等の分野では既に特に目新しいものではなかったが、パーソナルコンピュータ用に最も普及したIA-32/AMD64アーキテクチャにおける実装は比較的最近の出来事であり、最初に実装したAMD64系列が搭載したものを"NXbit"と呼称したため、一般にはこの名称が普及した。 ノイマン型アーキテクチャのコンピュータでは、プログラムをメモリ上にデータとして読み込み、逐次実行する。メモリを読み取った際それがデータであるかプログラムであるのかを、単にメモリ上のデータのみをもって判断することは、ノイマン型では本質的に不可能である。バッファオーバーラン(バッファーオーバーフロー)等と呼ばれる攻撃は、ノイマン型コンピュータのこのような性質を悪用して行われる。 なお、インテルはこの機能をXDビット (eXecute Disable) と称している。しかしながら、インテルのXDビットとAMDのNXビットは同一の機能を持ち、従って名称以外は全く同一のものである。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「NXビット」の詳細全文を読む 英語版ウィキペディアに対照対訳語「 NX bit 」があります。 スポンサード リンク
|